
-- 在使用该存储过程之前，请确保已经创建了序列，可以用以下SQL语句创建：
-- CREATE SEQUENCE itemdata_seq START WITH 1 INCREMENT BY 1 NOCACHE NOCYCLE;
-- CREATE SEQUENCE item_no_seq START WITH 1 INCREMENT BY 1 NOCACHE NOCYCLE;
-- CREATE SEQUENCE ps_resbase_seq START WITH 1 INCREMENT BY 1 NOCACHE NOCYCLE;


CREATE OR REPLACE PROCEDURE InsertItemDataByPhid (
    phid IN NUMBER  -- 将参数定义为 phid，类型为 NUMBER
) AS
    v_date_part VARCHAR2(8);
    v_sequence_part VARCHAR2(4);
    v_item_no VARCHAR2(20);
    v_item_phid VARCHAR2(20);
BEGIN

    -- 遍历满足条件的明细记录
    FOR detail_rec IN (
        SELECT u_pur_name--物料名称
        ,u_pur_item_category--物料分类
        ,u_pur_ggxh--规格信号
        ,u_unit--计量单位
        FROM p_form_equipment_list_d
        WHERE pphid = phid   -- 使用 pphid 字段与传入的 phid 参数进行匹配
          AND u_pur_item IS NULL
    ) LOOP

v_item_phid:='888000000' || TO_CHAR(SYSDATE, 'YYYYMM') || LPAD(itemdata_seq.NEXTVAL, 6, '0')
        -- 将生成的唯一 phid 和 item_no 插入到 itemdata 表中
        INSERT INTO itemdata (
            phid
            ,itemno
            ,itemname
            ,phid_resbs
            ,spec
            ,phid_unit
            ,positive_dev
            ,negative_dev
            ,res_attribute
            ,checktype
            ,phid_item_property_group
            ,cur_orgid 
            ,ffid 
            ) 
        VALUES (
            TO_NUMBER(v_item_phid)
            ,TO_CHAR(SYSDATE, 'YYYYMMDD')||'-'||LPAD(item_no_seq.NEXTVAL, 4, '0')
            ,detail_rec.u_pur_name
            ,detail_rec.u_pur_item_category
            ,detail_rec.u_pur_ggxh
            ,detail_rec.u_unit
            ,0
            ,0
            ,1
            ,3
            ,'0'
            ,'1'
            ,'7'
            );

        -- -- 将生成的 phid_itemdata 和新的 phid 插入到 ps_resbase 表中
        INSERT INTO ps_resbase (phid, phid_itemdata) 
        VALUES ('888000000' || TO_CHAR(SYSDATE, 'YYYYMM') || LPAD(ps_resbase_seq.NEXTVAL, 6, '0'), '888000000' || TO_CHAR(SYSDATE, 'YYYYMM') || LPAD(itemdata_seq.NEXTVAL, 6, '0'));
    END LOOP;

    -- 提交插入操作
    COMMIT;
END InsertItemDataByPhid;
/



        -- -- 将生成的 phid_itemdata 和新的 phid 插入到 ps_resbase 表中
        -- INSERT INTO ps_resbase (phid, phid_itemdata) 
        -- VALUES (
        --     TO_NUMBER('8880' || TO_CHAR(SYSDATE, 'YYYYMM') || LPAD(ps_resbase_seq.NEXTVAL, 6, '0'))
        --     ,TO_NUMBER( '8880' || TO_CHAR(SYSDATE, 'YYYYMM') || LPAD(itemdata_seq.NEXTVAL, 6, '0'))
        --     );




-- 在使用该存储过程之前，请确保已经创建了序列，可以用以下SQL语句创建：
-- CREATE SEQUENCE itemdata_seq START WITH 1 INCREMENT BY 1 NOCACHE NOCYCLE;
-- CREATE SEQUENCE item_no_seq START WITH 1 INCREMENT BY 1 NOCACHE NOCYCLE;
-- CREATE SEQUENCE ps_resbase_seq START WITH 1 INCREMENT BY 1 NOCACHE NOCYCLE;